package com.share.device.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.share.device.domain.Cabinet;
import com.share.device.domain.CabinetSlot;
import com.share.device.domain.CabinetVo;

import java.util.List;
import java.util.Map;

public interface ICabinetService extends IService<Cabinet> {
    /**
     * 查询充电宝柜机列表
     *
     * @param cabinet 充电宝柜机
     * @return 充电宝柜机集合
     */
    List<Cabinet> selectListCabinet(Cabinet cabinet);

    //未使用柜机
    List<Cabinet> searchNoUseList(String keyword);

    Cabinet getBtCabinetNo(String cabinetNo);

    Map<String, Object> getAllInfo(Long id);

    /* 新增方法供html页面查询 */
    /**
     * 获取柜机及其槽位完整信息
     */
    CabinetVo getCabinetWithSlots(Long id);

    /**
     * 更新某个槽位的状态（租借/归还）
     */
    CabinetVo updateSlotStatus(Long cabinetId, String slotNo, String action);

    /**
     * 获取一个可用槽位
     */
    CabinetSlot getAvailableSlot(Long cabinetId);

    /**
     * 获取所有已占用槽位
     */
    List<CabinetSlot> getOccupiedSlots(Long cabinetId);

    /**
     * 获取所有柜机列表
     */
    List<CabinetVo> getAllCabinets();

    /**
     * 新增柜机
     */
    boolean addCabinet(Cabinet cabinet);
}
